安全测试计划是什么?
安全性测试是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。应用程序级安全测试的主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力,根据安全指标不同测试策略也不同。安全测试的目的是确定软件系统的所有可能的漏洞和风险点,这些漏洞和风险点可能导致公司的信息、财务和声誉在外受损。
安全测试的类型
漏洞扫描:这是通过自动化软件对已知漏洞签名扫描系统。
安全扫描:它涉及识别网络和系统薄弱点,并提供降低这些风险的解决方案。
渗透测试:渗透测试可模拟来自恶意黑客的攻击。
风险评估:涉及对系统发现的安全风险进行分析。风险分为低、中和高。
安全审核:这是对应用程序和操作系统的内部检查,以检查安全漏洞。审核也可以通过逐行检查代码来完成。
“道德”黑客:入侵组织软件系统。与恶意黑客窃取自己的利益不同,其目的是暴露系统中的安全漏洞。
安全性测试的方法和手段:
静态的代码安全测试:主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安 全漏洞。静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有可能存在安全风险的代码,这样开发人员可以在早期解决潜在的安全问题。而正因为如此,静态代码测试比较适用于早期的代码开发阶段,而不是测试阶段。
动态的渗透测试:渗透测试也是常用的安全测试方法。是使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。这种测试的特点是真实有效,一般找出来的问题都是正确的,也是较为严重的。但渗透测试一个致命的缺点是模拟的测试数据只能到达有限的测试点,覆盖率很低。
程序数据扫描。一个有高安全性需求的软件, 在运行过程中数据是不能遭到破坏的,否则会导致缓冲区溢出类型的攻击。数据扫描的手段通常是进行内存测试,内存测试可以发现许多诸如缓冲区溢出之类的漏洞,而这类漏洞使用除此之外的测试手段都难以发现。例如,对软件运行时的内存信息进行扫描,看是否存在一些导致隐患的信息,当然这需要专门的工具来进行验证(比如:HP WebInspect、IBM Appscan和Acunetix Web Vulnerability Scanner)。